package com.lczyfz.istep.modules.openstack.api.neutron.interfaces.firewall;

import com.lczyfz.istep.modules.openstack.api.neutron.model.firewall.FireWallPolicy;
import com.lczyfz.istep.modules.openstack.api.neutron.model.firewall.FireWallRuleInsert;

import java.util.List;

public interface FireWallPolicies {

	/**
	 * �г����з���ǽ����
	 * @return
	 */
	public List<FireWallPolicy> getFireWallPolicies();

	/**
	 * ����ǽ��������
	 * @param fireWallPolicyId
	 * @return
	 */
	public FireWallPolicy getFireWallPolicy(String fireWallPolicyId);
	
	/**
	 * ��������ǽ����
	 * @param fireWallPolicy
	 * @return
	 */
	public FireWallPolicy createFireWallPolicy(FireWallPolicy fireWallPolicy);
	
	/**
	 * ɾ������ǽ����
	 * @param fireWallPolicyId
	 */
	public void deleteFireWallPolicy(String fireWallPolicyId);
	
	/**
	 * ���·���ǽ����
	 * @param securitygroupId
	 * @param securitygroupupdateinput
	 * @return
	 */
	public FireWallPolicy updateFireWallPolicy(String fireWallPolicyId, FireWallPolicy fireWallPolicy);
	/**
	 * �������ǽ����
	 * @param FwPolicyId
	 * @param FwRuleId
	 * @param beforeFwRuleId
	 * @param afterFwRuleId
	 * @return
	 */
	public FireWallPolicy insertFireWallRule(String FwPolicyId, FireWallRuleInsert insertrule);
	/**
	 * ɾ������ǽ����
	 * @param FwPolicyId
	 * @param FwRuleId
	 * @return
	 */
	public FireWallPolicy deleteFireWallRule(String FwPolicyId, String FwRuleId);
	
}
